package com.nuanshui.heatedloan.userinfo.facade;

import java.util.HashMap;
import java.util.List;

import com.nuanshui.heatedloan.userinfo.model.IntegralAction;
import com.nuanshui.heatedloan.userinfo.model.IntegralRank;
import com.nuanshui.heatedloan.userinfo.model.UserExchangeIntegral;
import com.nuanshui.heatedloan.userinfo.model.UserIntegral;
import com.nuanshui.heatedloan.userinfo.vo.UserIntegralVo;



public interface UserIntegralService {
	
	void save(UserIntegral userIntegral);
	 /**
     * 获取所有的用户等级
     * @return
     */
     List<IntegralRank> findAllIntegralRank();
	/**
	 * 获取所有获取积分的途径
	 * @return
	 */
    List<IntegralAction>  findAllIntegralAction();
	
	/**
	 * 获取解析好的用户等级 以及获取积分的途径
	 * @param @return
	 * @author guohao
	 * @date 2016年9月8日 上午10:47:33
	 * @since $
	 */
    HashMap<String,Object> getParsedIntegralActionAndRank();
	
	/**
	 * 获取某一方式获得积分的次数
	 * @param actionCode
	 * @param date
	 * @return
	 */
    Integer getContinuousTime(String actionCode, String date);
	
	/**
	 * 获取用户积分相关信息
	 * @param @return
	 * @author guohao
	 * @date 2016年9月8日 上午11:05:10
	 * @since $
	 */
    UserIntegralVo getUserIntegralVo();
	/**
	 * 未实现
	 * @return
	 */
    List<HashMap<String,String>> findUserActionCount();
	
	/**
	 * 更新用户积分
	 * @param userId
	 * @param score
	 */
    void updateUserTotalIntegral(String userId, Double score);
	UserExchangeIntegral loadExchangeIntegral(String orderNum);
	long loadSurplusIntegral(String userId);
	void exchangeIntegral(UserExchangeIntegral userExchangeIntegral);
	void unExchangeIntegral(String orderNum);

}
